package com.zzl.finance.data.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zzl.finance.data.dto.FinanceScopeInfoDto;
import com.zzl.general.common.exception.SysException;
import com.zzl.general.common.serurity.entity.User;
import com.zzl.general.common.utils.PageUtils;
import com.zzl.finance.data.entity.FinanceScopeEntity;
import com.zzl.finance.data.dto.FinanceScopeAddDto;
import com.zzl.finance.data.dto.FinanceScopeUpdateDto;

import java.util.List;
import java.util.Map;

/**
 * 资金方融资范围
 *
 * @author gull
 * @date 2022-07-01 18:23:11
 */
@SuppressWarnings("javadoc")
public interface FinanceScopeService extends IService<FinanceScopeEntity> {

    /**
     * 分页查询
     *
     * @param params 查询参数
     * @return 分页数据
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 新增
     *
     * @param financeScopeAddDto 新增实体
     * @param user               当前登录用户
     * @throws SysException 业务异常
     */
    void saveFinanceScope(FinanceScopeAddDto financeScopeAddDto, User user) throws SysException;

    /**
     * 修改
     *
     * @param financeScopeUpdateDto 修改实体
     * @param user                  当前登录用户
     * @throws SysException 业务异常
     */
    void updateFinanceScopeById(FinanceScopeUpdateDto financeScopeUpdateDto, User user) throws SysException;

    /**
     * 根据资金方查询融资范围
     *
     * @param id 资金方id
     */
    List<FinanceScopeInfoDto> getFinanceScopeByfinanceId(String id);

    /**
     * 保存融资范围
     * @param financingScope 融资范围id
     * @param institutyId 资金方id
     * @param user 用户
     */
    void saveBatchFinanceScope(List<String> financingScope, String institutyId, User user) throws SysException;
}

